package com.bjpowernode.crm.service.impl;

import com.bjpowernode.crm.mapper.ClueMapper;
import com.bjpowernode.crm.mapper.ValueMapper;
import com.bjpowernode.crm.pojo.Clue;
import com.bjpowernode.crm.pojo.Page;
import com.bjpowernode.crm.pojo.Value;
import com.bjpowernode.crm.service.ClueService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

@Service
public class ClueServiceImpl implements ClueService {
    @Resource
    private ClueMapper clueMapper;

    @Resource
    private ValueMapper valueMapper;
    @Override
    public void getALLClue(Page page, Map map) {
        //总记录数totalRows：我们通过后访问数据库获取，利用的参数：Map,map中存放着的是模糊查询的值，
        Integer totalRows =clueMapper.getAllClue();

         //总页数:totalPages,(总记录数-1)/10+1
        Integer totalPages =(totalRows-1)/page.getRowsPerPage()+1;


        //固定公式（每页开始展示的位置）：（当前页-1）*每页展示的记录数
        /*
        * select * from xxx limit 0 （起始位置）, 10 （每页展示的记录数）每页展示10条记录【第1页：起始位置和页数的关系：起始位置=（当前页数-1）*每页展示的记录数】
        * select * from xxx limit 10（起始位置）, 10 （每页展示的记录数）每页展示10条记录【第2页：起始位置和页数的关系：起始位置=（当前页数-1）*每页展示的记录数】
        * select * from xxx limit 20（起始位置）, 10 （每页展示的记录数）每页展示10条记录【第3页：起始位置和页数的关系：起始位置=（当前页数-1）*每页展示的记录数】
        * */
        Integer startIndex =(page.getCurrentPage()-1)*page.getRowsPerPage();//每页的起始位置

        //获取当前页的数据：data:根据每页的起始位置，每页展示多少条记录来查，ajax实现这一切
        List data =clueMapper.getData(startIndex,page.getRowsPerPage(),map);
       //page的这三个属性必须由后台来获取设置
        page.setTotalRows(totalRows);
        page.setTotalPages(totalPages);
        page.setData(data);
    }

    @Override
    public List<Value> getALLValue() {
        return valueMapper.getValueBySource();
    }

    @Override
    public List<Value> getState() {

        return valueMapper.getState();
    }

    @Override
    public void addClue(Clue clue) {
        clueMapper.addClue(clue);
    }

    @Override
    public Clue getData(String id) {
        return clueMapper.getDatas(id);
    }
}
